Python函数操作及方法 | 您所在的位置:网站首页 › python gettime函数 › Python函数操作及方法 |
一、函数概念
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 二、函数作用 对某块功能的代码的封装。 提高代码的复用性(重用性)。 大大的提高了开发效率。 三、函数定义和调用定义: def 函数名(): pass调用: 函数名()注意: 函数是一次定义, 多次调用。 如果函数名相同, 后面的会覆盖前面的同名函数。 四、函数参数概念作用: 进一步的提高了一个没有参数函数的复用性。定义格式: 形参:形式参数(有多少个,看需求)。 def 函数名(形参1, 形参2, ...): pass调用格式: 实参:实际参数(有多少个,看形参)。 函数名(实参1, 实参2, ...) 五、函数返回值作用: 把函数的内部的数据抛到函数的外部途径。定义格式: def 函数名(形参1, 形参2, ...): 代码逻辑 return 数值调用格式: 变量名 = 函数名(实参1, 实参2, ...)参数: 函数外部数据传递到函数内部。返回值: 函数内部的数据抛到函数的外部。retrun的作用: 结束函数。 给函数的调用者(执行者)返回值。 只有return -->None。 return 单个值:返回单个值,不改变数据类型。 return 多个值:以元组的形式返回。 没有return:默认返回None。 六、函数参数分类 位置参数:按顺序一一对应,传值即可。 关键字参数:只需要书写正确的形参名字。 缺省参数:传值即覆盖。 不定长参数:*args,**kwargs。 当函数定义的时候(*,**的作用):*, **代表聚合,*将实参对应的所有位置参数聚合到一个元组,赋值给args,**将实参对应的所有的关键字参数聚合到一个字典中,赋值给kwargs。 当函数调用的时候(*,**的作用):*,**代表打散。*是将所有的iterable元素打散成实参的位置参数。**是将字典的所有键值对打散成关键字参数。 形参的顺序:位置参数,*args, 缺省参数, **kwargs 七、变量类型1、局部变量 概念: 定义在函数内部的变量。作用域: 只能在自己的函数内部使用。2、全局变量 概念: 定义在函数外部的变量。作用域: 在整个模块内部。总结: 默认情况下,如果函数内部的变量和函数外部的变量同名,不是一个变量一个是全局,一个是局部。 如果想利用函数修改全局变量的值: def func(): global 全局变量名nonlocal:下级函数对上级函数非全局变量进行修改。 如果在函数内部使用一个变量(顺序):首先在函数内部找局部变量,然后在函数外部的全局变量。 局部变量 * 开辟内存空间, 保存数据 * 函数内部没有可执行代码,局部变量就被销毁,内存回收。 全局变量 * 开辟内存空间, 保存数据 * 整个程序没有可执行的代码,程序将退出,全局变量销毁,内存回收。 八、函数名的应用 函数名即函数地址。 函数名可以作为变量。 函数名可以作为函数的参数。 函数名可以作为函数的返回值。 函数名可以作为容器类类型的元素。 九、闭包 内层函数对外层函数非全局变量的引用,并将内层函数函数名返回。 机制:python解释器遇到闭包,那么这个空间不会随着函数的结束而释放。 闭包的应用场景:装饰器、爬虫。 十、迭代器与生成器迭代器: 可迭代对象:内部含有__iter__方法。 迭代器:内部含有__iter__方法和__next__。 可迭代对象–>迭代器iter(可迭代对象)。 迭代器取值__next__()、next()或for循环。生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调用自己的内置的__iter__方法),所以生成器就是可迭代对象。 生成器函数(含有yield)。 生成器推导式。 |
CopyRight 2018-2019 实验室设备网 版权所有 |